package com.atguigu.lease.common.handler;

import com.atguigu.lease.model.enums.ItemTypeEnum;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;


/**
 * @author LOGIN
 * @title StringToItemTypeEnumConverter
 * @create 2025/6/23 19:16
 * @description
 */
//todo 消息转换器
/**
 * 将字符串转为 ItemTypeEnum类型枚举对象的消息转换器
 */

//@Component
                                            //泛型必须正确，泛型一表示接受的参数类型，泛型2表示要转换成的类型
public class StringToItemTypeEnumConverter implements Converter<String, ItemTypeEnum> {

    @Override
    public ItemTypeEnum convert(String source) {
        //一、获取ItemTypeEnum所有的枚举类对象
        ItemTypeEnum[] itemTypeEnums = ItemTypeEnum.class.getEnumConstants();
        //二、 使用每个枚举对象的code值和source进行比较，比较成功 则返回枚举对象
        for (ItemTypeEnum itemTypeEnum : itemTypeEnums) {
            if (itemTypeEnum.getCode().equals(Integer.parseInt(source))) {
                return itemTypeEnum;
            }
        }
        throw new RuntimeException("type"+source+"没有匹配的类型");
    }
}






